Virtualization is a method of computer programming that provides a layer of abstraction between an application infrastructure and a physical infrastructure. Virtualization dynamically maps applications to resources according to resource availability and business needs. As networked infrastructures are dynamic in nature, virtualization effectively ‘hides’ the impact of changes in the underlying infrastructure from the service and application layer.
A virtual environment generally includes a virtual server or cluster of virtual servers which associates applications and services with logical representations of underlying physical compute resources (such as, memory, capacity and compute). The information that is available for provisioning and other management decisions is generally limited to any information that is provided at the interfaces. As a result, the virtual server is unaware of characteristics of the application environment and physical environment as a whole. For example, the virtual environment may not be aware that multiple applications are associated with a particular service, and may experience performance benefits from co-location. In the area of network connectivity, a virtual server may not be aware of the underlying network topology therefore is unable to assess the impact that events and changes at the underlying network infrastructure, potentially resulting in sub optimal decision making with respect to the environment hosted on the virtual layer.
One problem associated with the lack of awareness of the virtual environment is the difficulty in tracking the cause of performance degradations and availability problems. It is often difficult to determine the root cause of errors in a virtualized environment, and often there is confusion as to whether the errors are associated with the application/consuming service, the virtual environment, the underlying physical environment or some combination thereof.
Another problem associated with the lack of awareness of the virtualized environment is the lack of understanding regarding the impact of the physical environment on the virtualized one and in turn the impact of that environment on the hosted applications/services and possibly the business process relying on them. It would be desirable to identify a method and architecture which could be used to provide increased infrastructure awareness to virtualized environments.
Hence, there is a need in the industry for a method and system for representing, analyzing and determining root cause errors and the impact of such errors in Virtualized Environment.